/** @file   Base64.h
 *  @note   Hikvision Digital Technology Co., Ltd. All Rights Reserved.
 *  @brief  Base64编解码
 *
 *  @author wangquancai
 *  @date   2015/11/11
 *  @note
 */

#ifndef __NODE_BASE64_H__
#define __NODE_BASE64_H__

#include <string>



class CBase64
{
public:

    //编码表
    static const char s_encodeTable[];

    //解码表
    static const char s_decodeTable[];

    /*
    ** 编码
    ** param [in] pSrcData: 原始数据
    ** param [in] iSrcSize: 原始数据大小
    ** param [out] strDst:  编码后的数据
    */
    void Encode(const unsigned char* pSrcData,int iSrcSize,std::string& strDst);

    /*
    ** 解码
    ** param [in] pSrcData:  原始数据
    ** param [in] iSrcSize:  原始数据大小
    ** param [out] strDst:   解码后的数据
    ** param [out] iDstSize: 解码后的数据大小
    ** Note:解码后的大小不要通过string.size()计算
    */
    void Decode(const char* pSrcData,int iSrcSize,std::string& strDst,int& iDstSize);
};


#endif

